Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Search found 69 matches
Author Message
  Topic: Фабрика бъектов JavaScript
An6rey

Replies: 6
Views: 8673

PostForum: Разное :: JavaScript   Posted: Thu Nov 20, 2008 5:51 pm   Subject: Фабрика бъектов JavaScript
An6rey
могу сказать, что arguments != tоypeof Array однзначно!!!
лучше создайте новый массив с необходимыми данными

Да не Array, но такой код работает как было предложено KES здесь http://forum.dklab.ru/viewtopic.php?t=27031


var newArguments = Array.prototype.slice.call(arguments).slice(1);


Я вобщем-то так и хотел написать, но по памяти вышло [].concat.arguments.slice(1), что к несчастью сработало в O, но не работает в IE.
Ну конечно в рабочем коде следует только заполнять новый Array, как это делает например и prototype.js
  Topic: Фабрика бъектов JavaScript
An6rey

Replies: 6
Views: 8673

PostForum: Разное :: JavaScript   Posted: Thu Nov 20, 2008 12:52 am   Subject: Фабрика бъектов JavaScript
Rumata. Работает в WSE после замены:


//--- var newArguments = [].concat(arguments).slice(1); -- не работает в IE
var newArguments = [];
for (var i = 1; i < arguments.length; i++)
newArguments[i-1] = arguments[i];


Кроме того alert() заменяется на WScript.echo в тестирующем коде
Кстати, в хромом гугле тоже работет.
  Topic: Фабрика бъектов JavaScript
An6rey

Replies: 6
Views: 8673

PostForum: Разное :: JavaScript   Posted: Wed Nov 19, 2008 11:35 pm   Subject: Фабрика бъектов JavaScript
Изменил alert на WScript.echo и работает вроде нормально. Проблема была как раз в разборе arguments.
Сорри, я хотел подсократить свой код за счет "левого" разбора аргументов,



function Fabrica(){};

Fabrica.nativePrototype = Fabrica.prototype;

function create(functionConstructor){
Fabrica.prototype = functionConstructor.prototype;
var newObject = new Fabrica();
Fabrica.prototype = Fabrica.nativePrototype;
var newArguments = [];
for (var i = 1; i < arguments.length; i++)
newArguments[i-1] = arguments[i];
functionConstructor.apply(newObject, newArguments);
return newObject;
}


function Object0(var0, var1) {
this.prop0 = var0;
this.prop1 = var1;
}

Object0.prototype.validate = function(){
WScript.echo(this)
WScript.echo(this.constructor);
if (this instanceof Object0)
WScript.echo&# ...
  Topic: Фабрика бъектов JavaScript
An6rey

Replies: 6
Views: 8673

PostForum: Разное :: JavaScript   Posted: Wed Nov 19, 2008 11:16 pm   Subject: Фабрика бъектов JavaScript
В складе готовых решений http://forum.dklab.ru/viewtopic.php?t=31926 предложил возможность создания объектов с подменой прототипов таким способом


<script type="text/javascript">

function Fabrica(){}
Fabrica.nativePrototype = Fabrica.prototype;

function create(functionConstructor){
Fabrica.prototype = functionConstructor.prototype;
var newObject = new Fabrica();
//--- var newArguments = [].concat(arguments).slice(1); -- не работает в IE
var newArguments = [];
for (var i = 1; i < arguments.length; i++)
newArguments[i-1] = arguments[i];
functionConstructor.apply(newObject, newArguments);
return newObject;
}

// -- Тестовый код ниже
function Object0(var0, var1) {
this.prop0 = var0;
this.prop1 = var1;
}

Object0.prototype.validate = function(){
alert(this.constructor);
...
  Topic: Фабрика объектов JavaScript
An6rey

Replies: 2
Views: 12999

PostForum: Склад готовых решений :: JavaScript   Posted: Wed Nov 19, 2008 7:53 pm   Subject: Фабрика объектов JavaScript
В подавляющием большинстве библиотек JavaScript, которые манипулруют объектами, код инициализации выносится из конструктора в метод init() или аналогичный, в то время как конструктор остается пустой. У такого решения есть две очевидные причины:
1) при реализации наследования в стиле Child.prototype = new Parent() объект создается, но "лишний" код инициализации прототипа не выполняется;
2) при реализации фабричных методов (напр. create()) возможно вызвать инициализатор init() с произвольным количеством параметров;

function create(functionConstructor){
var newObject = new functionConstructor();
var newArguments = [].concat(arguments).slice(1); // некроссбраузерно
//var newArguments = []; Так будет работать и в IE
//for (var i = 1; i < arguments.length; i++)
// newArguments[i-1] = arguments[i];
newObject.init.apply(newObject, newArguments);
return newObject;
}

...
  Topic: Парсинг XML [Обсуждение]
An6rey

Replies: 10
Views: 10823

PostForum: Разное :: JavaScript   Posted: Sat Oct 04, 2008 2:12 am   Subject: Парсинг XML [Обсуждение]
Я рекомендую Вам внимательно ознакомиться с ресурсом http://w3schools.com/ajax/ajax_responsexml.asp особенно в части обработки ошибок и работы со своййством documentElement.
  Topic: Загрузка xml в iframe - проблема в IE.
An6rey

Replies: 7
Views: 31874

PostForum: Разное :: JavaScript   Posted: Sat Sep 13, 2008 6:28 pm   Subject: Re: Загрузка xml в iframe - проблема в IE

Но специфика моей компании требует, чтобы наши клиенты могли смотреть наши работы на локальных машинах. При отключенном инете. :-/
Поэтому я решил использовать подгрузку этого же xml в невидимый iframe.

Сорри, что поднимаю старую тему. Не уловил сразу смысл проблемы. Автор использует XMLHttpRequest для загрузки по протоколу http:.
Но объект XMLHttpRequest, несмотря на грозное название читает и по протоколу file: c локального тома (при этом request.ststus == 0).
  Topic: шифрование с помощью JavaScript
An6rey

Replies: 10
Views: 13991

PostForum: Разное :: JavaScript   Posted: Sat Mar 08, 2008 7:11 pm   Subject: шифрование с помощью JavaScript
Несимметричные ключи как правило требуют больше ресурсов, т.к. реализуют работу с очень большими целыми числами.
Тот же https примерно так и поступает. То есть меняется несимметричными ключами и продолжает симметричными.
Реализовать защищенный от дискредитации протокол сложно, но возможно,если есть хороший математик (к счастью мне этим заниматься не приходится). А чистый https слишком много уж любителей сделать не таким секретным. Поэтому справедливо некоторые хотят иметь что-то помимо https.
Уже достаточным перимуществом "своих" систем защиты является то, что это еще нужно узнать что там происходит. Кроме того никто не возбраняет "свои" методы использовать поверх https.
В остальном согласен, низкоуровневые средства это, наверное. единственный надежный вариант. Но могут быть, наверное, какие-то мотивы использовать и js-шифрование.
  Topic: Частные способы клонирования
An6rey

Replies: 49
Views: 51776

PostForum: Разное :: JavaScript   Posted: Sat Mar 08, 2008 2:52 pm   Subject: Частные способы клонирования
Давайте разберем что такое клонирование. Иногда выделяют глубокое клонирование. Но это не совсем строго, так как любое клонирование должно быть глубоким. То есть для свойств, которые ссылаются на изменяемые объекты должны создаваться колны. (Иногда под глубоким клонированием понимают, что и на неизменяемые объекты создаются клоны)
А это ознаяает, что и для прототипа должет быть содан клон, и для прототипа-прототипа...
А это означает, что использование прототипа при (глубоком) клонировании вовсе не нужно, т.к. все свойства нужно "окончательно" привязать к клону на момент клонирования. Ведь гораздо проще привязать клоны объектов сразу к this, чем создавать клоны для всех прототипов.
  Topic: шифрование с помощью JavaScript
An6rey

Replies: 10
Views: 13991

PostForum: Разное :: JavaScript   Posted: Sat Mar 08, 2008 12:44 pm   Subject: шифрование с помощью JavaScript
Я думаю, открытий в области шифрования сейчас сделать сложно. Но вот стандартный подход
1) На клиенте генерится закрытый и открытый ключ
2) Открытый ключ передается на сервер
3) На сервере генерится симметричный ключ и предается зашифрованный на клиент
4) Дальше шифрование идет симметричным ключом

или

1) На сервере генерится окрытый и закрытый ключ
2) Открытый ключ передается клиенту
3) Клиент генерит симметричный ключ
4) Клиент шифрует симметричный ключ и передает серверу

Симметричное шифрование реализовано, например, в библиотеке jsolait.
  Topic: Prototype-based наследования vs. эмуляции Class-based наследования
An6rey

Replies: 70
Views: 55030

PostForum: Разное :: JavaScript   Posted: Fri Feb 15, 2008 11:14 pm   Subject: Prototype-based наследования vs. эмуляции Class-based наследования
Недавно прочитал код наследование из YUI и решил воспроизвести его здесь. Идея примерно как в шкльном примере C:=A; A:=B; B:=C;


extend: function(subc, superc, overrides) {
...
var F = function() {};
F.prototype=superc.prototype;
subc.prototype=new F();
subc.prototype.constructor=subc;
subc.superclass=superc.prototype;
if (superc.prototype.constructor == Object.prototype.constructor) {
superc.prototype.constructor=superc;
}
...
},


По поводу не красивой но более удобной реализации доступа к родительским методам такая идея (уже на из YUI)

Лишних замыканий можно избежать если отказаться от вызова в стиле parent.method0();
Можно следовать соглашению PHP и привязать метод к прототипу как prototype.parent_method0 = parent.methid0.

Ну и наконец зачем все это городить?

Основная причина, по которой я использую user classing - ...
  Topic: Эмуляция локального контекста
An6rey

Replies: 5
Views: 5462

PostForum: Разное :: JavaScript   Posted: Fri Jan 18, 2008 8:32 pm   Subject: Эмуляция локального контекста
Класс!. Я об этом даже не подумал. !function мнепонравиля бльше всего (Нефункция)
  Topic: Эмуляция локального контекста
An6rey

Replies: 5
Views: 5462

PostForum: Разное :: JavaScript   Posted: Fri Jan 18, 2008 1:02 am   Subject: Эмуляция локального контекста
Часто используют конструкцию (function(){...})() для эмуляции локального контекста.
В свое время я использовал конструкцию
f=function{...}(), но не был удовлетворен загрязнением контекста переменной - в данном случае f.
Пробовал писать function(){...}() - но получал ошибку.
Тогда пришел к такому варианту
void function(){...}() - которым и пользуюсь. Но ни в одной серьезной библиотеке не нашел подтверждение этому коду.
Тепрерь сомневаюсь - правильно ли так кодировать? (Вобще вариант мне нравится тем, что не требует дополнительных скобок)
  Topic: кроссбарузерная подгрузка HTML+JS
An6rey

Replies: 18
Views: 12343

PostForum: Разное :: JavaScript   Posted: Tue Jan 15, 2008 8:35 pm   Subject: кроссбарузерная подгрузка HTML+JS
Отличный пример!
У меня теперь вопрос по deprecated object.eval().
Словл контекст в JavaScript употребляется в двух смыслах. В смысле глобальный/локальный и в смысле "контекст объекта" -
как в функции aply(). Так вот что значит object.eval() выполняется в конетексте object.
- this внутри object.eval() ссылается на object ???
- переменные var присоединяются к object ???
- вызов функций внури object.eval() происходят как вызов методов object.
В исключительном случае объекта window как раз глобальный контекст и контекст объекта не то чтобы совпадают, но имеют похожее поведения.
А как быть с произвольным object.eval() (хоть и deprecated)
  Topic: кроссбарузерная подгрузка HTML+JS
An6rey

Replies: 18
Views: 12343

PostForum: Разное :: JavaScript   Posted: Mon Jan 14, 2008 8:17 pm   Subject: кроссбарузерная подгрузка HTML+JS
Я скорее склонен трактовать такое поведение не как аномалию в window.eval(), а как аномалию this.
После входа в тело функции (метода), вызванного через объект (экземпляр) - this приписывается к глобальному контексту и window.eval() не меняет this с текущего объекта на window - хотя это только предположение.
  Topic: кроссбарузерная подгрузка HTML+JS
An6rey

Replies: 18
Views: 12343

PostForum: Разное :: JavaScript   Posted: Sun Jan 13, 2008 2:03 am   Subject: Re: кроссбарузерная подгрузка HTML+JS

Первыми попытками было использование eval(), но как оказалось - таким макаром подружаются функции но никак не переменные
Для ИЕ нашел выход с использование window.execScript вместо eval, но аналогов такого замечательного метода для других браузеров я не нашел
В частности ищу решение для Оперы и Фокса. А есть ли такое решение ?

Неизвестно как Вы конкретно загружаете, что функции у Вас подгружаются. Так как область вилимости функций и переменных защищенных var одинаковая.

Конкретно по сабжу.

1. В не-IE браузерах вместо execScript() можно использовать window.eval(). От execScript отличается тем, что возвращает значение последнего выполненног оператора. (window.eval() != eval())

2. Можно использовать и просто eval() и не защищать переменые ключевым словом var.

Но по гамбургскому счету делать так нельзя (использовать глобальные переменные).Вы можете создать в глобальном пространстве "объект пространства имен".
То есть

var aaa={}
aaa.bbb={}

и сохранять все ваши за ...
  Topic: URL-(де)кодирование и кодировки
An6rey

Replies: 4
Views: 9231

PostForum: Разное :: JavaScript   Posted: Sat Jan 12, 2008 7:29 pm   Subject: URL-(де)кодирование и кодировки
Не совсем понятно в квком именно месте происходит передача строк. Но на всякий случай, если Вы используете Ajax - объект XMLHttpRequest может кое-что сделать за Вас.
Если Вы отправляете запрос на сервер - просто допишите в заголовок charset=...
Если получаете запрос с сервера - добавьте в head() (на PHP) charset=...
Как выриант использовать обыертку запроса в xml и указывать кодировку в заголовке xml-документа
  Topic: JSON, XML, javascript и кириллица
An6rey

Replies: 7
Views: 8705

PostForum: Разное :: JavaScript   Posted: Sat Dec 22, 2007 1:10 am   Subject: JSON, XML, javascript и кириллица
C XML-документом можно решить добавив в заголовок документа кодировку явно. С JSON объектом - так не поступишью
  Topic: Помогите составить эффективный запрос к MySQL
An6rey

Replies: 10
Views: 10930

PostForum: Общие вопросы :: SQL   Posted: Tue Dec 11, 2007 11:31 pm   Subject: Помогите составить эффективный запрос к MySQL
Существует расхожая структура для реализации дерева - TABLE(parent, child) - и в рамках такой структуры SQL-запрос ничего не может сделать. Приходится использовать хранимые процедуры или же обработку на сервере приложений или клиенте.
Но существуют подходы с другой структурой. Вот ссылка
http://www.sql.ru/articles/mssql/01091502TreesInSQL.shtml
Позволяет сделать одним запросом.
Вобщем, тема очень интересная. Но решение - в поиске хорошей структуры. Кстати, в "Моем круге" - что-то используется такое?
  Topic: Как в iframe страницы при загрузке извне поместить себя, а в parent меню ?
An6rey

Replies: 16
Views: 10690

PostForum: Разное :: JavaScript   Posted: Fri Dec 07, 2007 11:20 pm   Subject: Как в iframe страницы при загрузке извне поместить себя, а в parent меню ?
Можно дейтствительно делать в якоре.
Якорь легко извлекается location.hash. Не надо парсить.
  Topic: Как в iframe страницы при загрузке извне поместить себя, а в parent меню ?
An6rey

Replies: 16
Views: 10690

PostForum: Разное :: JavaScript   Posted: Thu Dec 06, 2007 8:56 pm   Subject: Как в iframe страницы при загрузке извне поместить себя, а в parent меню ?
Пол часа сидел в позе лотоса и наконец начмнаю разуметь.
Предыдущий оратор ответил хорошо.
И до него выступавший оратор ответил хорошо.
Согласен с ними. Что делать? Есть варианты.

1. Поскольку Вы обращаетесь к файлам внутри одной "песочницы" FRAME/IFRAME использовать нет необходимостию Загружайте все Ajax-запросами в элементы DIV.

2. Вмето IFARME используйте два FRAME или аналогично используйте два IFRAME - один для меню, другой для контента.

3. Перегружайте основной файл как Вы и делали это, но IFRAME прописывайте явно в основном файле. А если уж так вам хочется через JavaScript - то в событии onload.

Няф.
  Topic: Как в iframe страницы при загрузке извне поместить себя, а в parent меню ?
An6rey

Replies: 16
Views: 10690

PostForum: Разное :: JavaScript   Posted: Thu Dec 06, 2007 12:34 am   Subject: Как в iframe страницы при загрузке извне поместить себя, а в parent меню ?
Я почти ничего не уразумел, т.к. Вы излагаете слишком уже по-японски. Но что я могу предположить, что self.parent может быть NULL и слеждовательно self.parent.location or length выбрасывает ошибку.
  Topic: jQuery и WebServices
An6rey

Replies: 5
Views: 5453

PostForum: Разное :: JavaScript   Posted: Tue Dec 04, 2007 8:42 pm   Subject: jQuery и WebServices
Стоит поискать готовую библиотеку. Например, jsolait реализует работу с xml, сериализацию объектов и xmlrpc. Я могу рекомендовать как основу, т.к. разбирал код библитеки и он мне понравился. Но есть, наверное и реализация конкретно обращеий к WS.
  Topic: ООП в JavaScript
An6rey

Replies: 49
Views: 32737

PostForum: Разное :: JavaScript   Posted: Thu Nov 22, 2007 9:42 pm   Subject: ООП в JavaScript
Поэтому высказваю свое мнение: все эти псевдонаследования несостоятельны и менее эффективны чем родное наследования в JS.
Но выходить с этим лозунгом и собирать демонстрации не буду сами решайте что лучше.
Тема топика - желание изучить наследование я привел отличные по моему мнению ссылки.

При организации наследования (родного-или неродного) - проблема не в том каким способом это делать - если речь не о начинающем программисте.
Проблема в том как загрузить код связанных классов до моменнта его использования.

И тут "самопальное" наследование может совместить само наследование и загрузку кода всех необходимых классов методами Ajax.

Посмотрите библиотеки dojo, jsolait.

Наследование при помощи методов копирования свойств так же просто реализовать как и "родное". Но речь, еще повторю, в удобстве использования.
Я вызываю "самопальную" функцию myNamespace.create("myNamespace.Dog","Rex") - и внутри "самопальной" функции
1) загружается код myNamespace/Dog.js
2) загружается код ...
  Topic: ООП в JavaScript
An6rey

Replies: 49
Views: 32737

PostForum: Разное :: JavaScript   Posted: Thu Nov 22, 2007 8:04 pm   Subject: ООП в JavaScript
Хм... Вроде как, внутри метода this таки указывает на объект класса :).
Неправда ваша :)
function obj(){
var func=function(){
alert(this);
}
this.method=function(){func();};
}
var Obj=new obj();
Obj.method(); такой пример в FireFox возвращает
Ваше this не втутри метода - внутри функции. Сравните:


function obj(){
var func=function(my){
alert(my);
}
this.method=function(){func(this);};
}
var Obj=new obj();
Obj.method();
  Topic: Индексы и не правильная выборка
An6rey

Replies: 11
Views: 9690

PostForum: Общие вопросы :: SQL   Posted: Thu Nov 22, 2007 6:59 pm   Subject: Re: Индексы и не правильная выборка

Ну вот category.sort - зачем мне её в результат если я её не буду использовать. А COUNT(*) - так лучше же точно указать, а не просто( *)

По category.sort - сортировка будет происходить в другом месте - может ускорить код. Вы же используете в ORDER BY category.sort.
По COUNT(*) - просто посчитает количество строк - будет тоже работать быстрее.
  Topic: Индексы и не правильная выборка
An6rey

Replies: 11
Views: 9690

PostForum: Общие вопросы :: SQL   Posted: Thu Nov 22, 2007 12:23 am   Subject: Re: Индексы и не правильная выборка


SELECT category.id, category.name, category.title, COUNT(accounts.id) AS count
FROM category
LEFT JOIN accounts ON category.id=accounts.category
GROUP BY category.id
ORDER BY category.sort

Вроде я всё делаю правильно, а мне говорят, что у меня в индексах проблема и запрос получается сильно грузит машину. Помоги пожалуйста, я просто уже не знаю, что делать.
1) Все поля без функций агрегирования дожны присутствовать в условии GROUP
2) Попробуйте включить category.sort явно в результат выборки
3) Попробуйте использовать COUNT(*) - если это не нарушает логику выборки (я в нее не вникал)
  Topic: Загрузка данных с пощью sajax
An6rey

Replies: 9
Views: 7786

PostForum: Разное :: JavaScript   Posted: Sun Oct 21, 2007 1:14 am   Subject: Загрузка данных с пощью sajax
Я открыл Ваши ссылки в FF под Линуксом - и все работает нормально.

У Вас кодировка ответа указана в МЕТА, а устанавливае те ли Вы header из PHP (text/html; charset=...) или xhtml?
Может быть проблема в xhtml?
Не могу проверить под Линуксом - все работает и так нормально.
  Topic: О возможности создавать стандартные и расширенные события
An6rey

Replies: 16
Views: 10257

PostForum: Разное :: JavaScript   Posted: Wed Oct 17, 2007 3:31 pm   Subject: О возможности создавать стандартные и расширенные события
Я думаю все "самопальные" роутеры событий - это самообман. Паттерну Publish/Subscribe - эти роутеры не соответствуют. Посколько фактически к некоторому объекту привязывается новая функция и она же где-то в коде вызывается. Немного напоминает Smalltalk.
  Topic: Загрузка данных с пощью sajax
An6rey

Replies: 9
Views: 7786

PostForum: Разное :: JavaScript   Posted: Mon Oct 15, 2007 12:58 am   Subject: Загрузка данных с пощью sajax
Я думаю проблема в конфигурации PHP или Apache.
Закомментируйте default_charset в php.ini или установите в cp1251.
Если не поможет - поищите и закомментируйте или переустановите аналогичные установки в одном из файлов конфигурации Apache.
В общем случае никаких default значений не требуется. Особенно если предполагается параллельно использовать однобайтовые кодировки и UTF-8.
  Topic: Загрузка данных с пощью sajax
An6rey

Replies: 9
Views: 7786

PostForum: Разное :: JavaScript   Posted: Sun Oct 14, 2007 2:06 pm   Subject: Загрузка данных с пощью sajax
Я сталкивался с противоположным случаем - данные на сервер загружаются в UTF-8 и это нужно настраивать на сервере, что бы было правильно в 1251.
Если Ваша основная (текущая страница) в кодировке 1251 - все что загружается из 1251 должно правильно отображаться в 1251.
Чтобы разобраться мало информации
1) В какой кодировке приходит ответ (1-байтовой или UTF-8)
2) Код onreadyststechange функции
3) Как формируется подгружаемая страница - статический HTML, PHP, JSP, ASP...
  Topic: FF XMLHttpRequest и исключения
An6rey

Replies: 9
Views: 6130

PostForum: Разное :: JavaScript   Posted: Fri Oct 12, 2007 12:09 pm   Subject: Re: FF XMLHttpRequest и исключения
Не работает не только исключение, но и вообще функция не вызывается (В FF, Opera, Netscape). Проверте это заменив throw на alert.
А вызвать функцию синхронно очень просто


function myFn() {
throw "HELLO";
}

try {
var R= new XMLHttpRequest();

// R.onreadystatechange= myFn;
.....
R.open( 'GET', url, false );
.....
R.send()
myFn()
}
catch(e) {
alert( e ); // <<< никогда не выполняется =(((
}

Логика IE - асинхронная функция должны выполняться асинхронно, а синхронная синхронно
Логика FF - асинхронная функция вызывается асинхронно, а синхронная функция не вызывается т.к. после выхода из send() никакого изменения состояния (readyststechange) нет. Весь запрос уже полностью получен. Поэтому функция может вызываться в следующем операторе. Необходимости в обработчике события нет.
  Topic: кроссплатформенность XMLHttpRequest
An6rey

Replies: 5
Views: 4821

PostForum: Разное :: JavaScript   Posted: Thu Oct 11, 2007 8:30 pm   Subject: кроссплатформенность XMLHttpRequest
Какие есть варианты для мобильных платформ? есть требование к моей системе, чтобы оно работало и в т.ч. с мобильника....

спасибо.
Приложения Ajax, в которых сейчас используется объект XMLHttpRequest - по утверждению авторов книги Э.Паскарелло и др. "Ajax в действии" - не ориентированы на использовании на базе мобильных телефонов и КПК
  Topic: FF XMLHttpRequest и исключения
An6rey

Replies: 9
Views: 6130

PostForum: Разное :: JavaScript   Posted: Thu Oct 11, 2007 8:21 pm   Subject: FF XMLHttpRequest и исключения
onreadystatechange-функция вызывается синхронно только в IE.
Есть еще несколько отличий для IE. Вот те которые я обнаружил
- onreadyststechange нельзя присвоить значение null - только функции см. prototype.js emptyFunction()
(это важно для разрыва циклических связей)
- для метода POST список HTTP-параметров не может быть пустым
  Topic: Как получить значение текста для RADIO -кнопок
An6rey

Replies: 4
Views: 5165

PostForum: Разное :: JavaScript   Posted: Wed Oct 10, 2007 6:35 pm   Subject: Как получить значение текста для RADIO -кнопок

3. Смотрю и не вижу.

Как по Вашему: текст радиокнопки расположен слева от кнопки или справа от кнопки?
  Topic: Передача информации между окнами..
An6rey

Replies: 2
Views: 4340

PostForum: Разное :: JavaScript   Posted: Tue Oct 09, 2007 12:21 am   Subject: Передача информации между окнами..
Я дополнил Ваш код и протестировал в FF под Linux.

function CreateInput() {
myWin= open("okno.htm", "displayWindow",
"width=400,height=200,status=no,toolbar=no,menubar=no");
myWin.parentWindow=window
}

function doInput(){
var inp= parentWindow.document.createElement("Input");
inp.type="text";
inp.VALUE="input";
inp.MAXLENGTH ="20";
parentWindow.document.getElementById("layer2").appendChild(inp);
}


У меня нет возможности сейчас протестировать под другие браузеры.
Но по памяти - Опера не откроет окно, а откроет новую вкладку.

Я думаю, что в открытии нового окна нет необходимости.
Гораздо надежнее создать новый DIV с абсолютным позиционированием и работать в одном пространстве имен.
Источник ненадежности - open может загружать документ долго, а переход на слежующий оператор происходит до полной загрузки документа, хотя новый объект window должен быть уже доступен.
  Topic: 40 Наследование в JavaScript
An6rey

Replies: 231
Views: 450370

PostForum: Наблы :: Куроводство   Posted: Sat Oct 06, 2007 4:20 pm   Subject: 40 Наследование в JavaScript

У кого проблемы?
А я не знаю. Не мне выносить вердикт. Мое дело - узнать как можно больше об особенностях и учиться пользоваться хорошими, обходя при этом плохие.
Я отже не знаю какой вариант setInterval более "правильный". Я не собирался очернять IE,
но и поведение FF не вызывает у меня улыбку.

На самом деле серьезный вопрос заключается в том необходимо ли разрабатывать приложения кроссбраузерно.
Или пользоваться все расширяющимися возможностями IE.

На этот вопрос тоже нет однозначного ответа.
  Topic: 40 Наследование в JavaScript
An6rey

Replies: 231
Views: 450370

PostForum: Наблы :: Куроводство   Posted: Sat Oct 06, 2007 12:24 pm   Subject: 40 Наследование в JavaScript

В IE количество вызовов функции Test (если эту цифру умножить на время интервала) будет совпадать с временем от начала первого выполнения функции (за исключением небольших погрешностей). А вот в FF все иначе, и особенно забавными выглядят данные, выводимые в панель состояния на первых двух-трех секундах.

Мой Mozilla/5.0 Gecko/20061204 Firefox/2.0.0.1 не работает с window.status, но я понял о чем Вы хотите сказать.
Вы вызвали setInterval(1 секунда) и "подвесили" скрипт на 3 секунды.
IE начинает отсчет вызовов с момента окончания основного скрипта и через 4 секунды после вызова setInterval вызовет функцию 1 раз.
FF начинает отсчет с момента вызова setInterval и выстраивает вызовы функций в очередь.
Таким образом за 4 секунды функция будет вызвана 4 раза из них - все четыре за последнюю секунду.

У кого проблемы?
  Topic: 40 Наследование в JavaScript
An6rey

Replies: 231
Views: 450370

PostForum: Наблы :: Куроводство   Posted: Sat Oct 06, 2007 11:02 am   Subject: 40 Наследование в JavaScript
Если из файловой системы - с меньшим числом если загружаемый файл маленький (простите за вольность)
Из файловой системы это как? Ajax может тырить данные с компьютера пользователя?
Если Вы основной файл загрузили не через http:// запрос а как file:// МЕНЮ-ФАЙЛ-ОТКРЫТЬ... из локальной файловой системы -
Ваш Ajax запрос может использовать относительный адрес и загрузить файл из локальной файловой системы.
Если Вы открываете основной файл через http:// и пытаетесь открыть file:// - разумеется сработает защита.
Вывод Ajax не может тырить данные с компьютера если нет взломов, вирусов итп
  Topic: 40 Наследование в JavaScript
An6rey

Replies: 231
Views: 450370

PostForum: Наблы :: Куроводство   Posted: Fri Oct 05, 2007 10:05 pm   Subject: 40 Наследование в JavaScript

2. Как это выглядит, и кому что кажется - это тоже не наша проблема, так?

Заблуждение касающееся параллельности выполнения onreadyststechange-функций настолько широко распространено,
что одна из популярных реализаций пула объектов XMLHttpRequest входит в бесконечный цикл,
ожидая освобождения объекта, который в свою очередь ожидает окончания бесконечного цикла -
как бы это можно было сделать при многопоточном программировании.
 
Page 1 of 2 All times are GMT + 3 Hours
Goto page 1, 2  Next
XML